查看原文
其他

迅雷下载服务加速节点的来源分析

xiaofu 看雪学院 2019-09-18

迅雷前端逻辑:electron + nodejs

迅雷后端逻辑:lua5.3

随便对一个种子进行加速,种子内有5个文件。




看到后端下载服务访问了以下网址:





内容都经过加密,先附加到下载服务上。





发现其使用AES-ECB加密,解密后,可以发现:hub5btmain.v6.shub.sandai.net 接口返回种子内每个文件的GUID和CID。




拿到gcid后,作为参数传递给lua脚本LuaServiceSHubQueryBTFileIndexCallBack::LuaCallBack 进行处理。





想办法把其lua脚本都提取出来,其脚本都打包为xar文件中,我们找到loadbuf函数。





直接做HOOK注入到下载进程中,DUMP出来。




这样我们就全部解析出来了。




有了种子里面的每个文件的信息后,就可以去请求加速节点了。迅雷用的是流协议,看下它是怎么请求的:




可以看到,迅雷请求的时候,把要查询的种子内的文件的guid和一个jwt的token还有种子信息都发给了dcdnhub.xfs.xcloud.sandai.net:80进行查询。





看下token内容:




接着解密下节点服务器返回的信息:




逆向其反序列的函数:




已经很明显了,我们写个反序列化的代码:




拿到这些peer_server后就可以加速了。这样的话,我们就可以拿一个会员账号给一千个人进行加速拉。


奇怪的是为什么peer会有个人ip。


难道是~开会员用其他没开会员的人加速?。嘿嘿。



看雪ID:xiaofu

bbs.pediy.com/user-99882



本文由看雪论坛 xiaofu 原创

转载请注明来自看雪社区



2019 看雪安全开发者峰会门票正在热售中!

长按识别下方二维码即可享受 2.5折 优惠!




热门文章阅读

1、Android逆向----某CTF题

2、Kanxue Security Access,看雪安全接入,上线啦!

3、开源LLVM打碎控制流图和字符串加密



公众号ID:ikanxue

官方微博:看雪安全

商务合作:wsc@kanxue.com




戳原文,看看大家都是怎么说的?

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存